(function($) {

  if(!$) {

    return;

  }

  ////////////

  // Plugin //

  ////////////

  $.fn.headroom = function(option) {

    return this.each(function() {

      var $this   = $(this),

        data      = $this.data('headroom'),

        options   = typeof option === 'object' && option;

      options = $.extend(true, {}, Headroom.options, options);

      if (!data) {

        data = new Headroom(this, options);

        data.init();

        $this.data('headroom', data);

      }

      if (typeof option === 'string') {

        data[option]();

      }

    });

  };

  //////////////

  // Data API //

  //////////////

  $('[data-headroom]').each(function() {

    var $this = $(this);

    $this.headroom($this.data());

  });

}(window.Zepto || window.jQuery));